// import complex_query from '@dfeidao/atom-nodejs/db/complex-query';
import count from '@dfeidao/atom-nodejs/db/count';
import query from '@dfeidao/atom-nodejs/db/query';
import log from '@dfeidao/atom-nodejs/logger/log';
import { IncomingHttpHeaders } from 'http';
import { productid, systemid } from '../../atom/config';
interface Message {
	cookie: {
		uk: string;
		[key: string]: string
	};
	urls: {
		base: string;
		origin: string;
		url: string;
	};
	query: {};
	params: {};
	headers: {};
	captcha: string;
	page: {
		value1: string;
		value2: string;
		value3: string;
		page_no: number;
		asc?: string[];
		desc?: string[];
	};
}

interface IWebResult {
	data: unknown;
	cookie?: {
		[name: string]: string;
	} | null;
	content_type?: string;
	headers?: {
		[key: string]: string;
	};
	attachment?: string;
	redirect?: string;
	status_code?: number;
}
// 表名	equipment_facilities
// 标题	设备设施
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// productid	产品ID	string	50	√	ⅹ
// equip_type_name	设备类型名称	string	64	√	ⅹ
// equip_type_no	设备类型编号	string	32	√	ⅹ
// equip_internal_no	设备设施编号	string	32	√	ⅹ
// equip_no	设备编号	string	32	√	ⅹ
// equip_name	设备名称	string	128	√	ⅹ
// equip_description	设备描述	string	256	√	ⅹ
// equipment_state	设备状态	string	50	√	ⅹ
// fixed_assets_type	固定资产类型	string	32	√	ⅹ
// fixed_assets_no	固定资产编号	string	32	√	ⅹ
// Former_equip_no	原设备设施编号	string	32	√	ⅹ
// transfer_time	转固时间	timestamp	50	√	ⅹ
// transfer_price	购置价格	double	32	√	ⅹ
// transfer_date	购置日期	timestamp	50	√	ⅹ
// manufacturer	制造商	string	32	√	ⅹ
// manu_country	制造商国家	string	32	√	ⅹ
// manu_element_no	制造商零件编号	string	32	√	ⅹ
// manu_years	制造年/月	timestamp	50	√	ⅹ
// equip_model	设备型号	string	32	√	ⅹ
// series_no	系列编号	string	32	√	ⅹ
// geom	所在位置	string	50	√	ⅹ
//   1.1取<设备设施>表，得到“设备编号equip_no”、“设备设施编号equip_internal_no（渲染至列表的“设备编号”列）”、“设备名称”、“转固时间“、“固定资产类型”、“购置价格”、“制造商”、“制造年/月”渲染在列表对应位置。

export default async function atom(message: Message, action_id: string, session_id: string, headers: IncomingHttpHeaders): Promise<IWebResult> {
	log('Service begin path:e:\考核-2\kh\src\device-management-ygh\zj-000002\s001,action_id:' + action_id);

	const q = query(action_id, session_id, systemid);
	q.prepare('equipment_facilities', ['equip_no', 'equip_type_name', 'equip_type_no', 'equip_internal_no', 'equip_name', 'transfer_time', 'fixed_assets_type', 'transfer_price', 'manufacturer', 'manu_years', 'geom'], { productid, equip_name: { $like: '%' + message.page.value2 + '%' }, fixed_assets_type: { $like: '%' + message.page.value3 + '%' } }, 5, message.page.page_no, message.page.asc || [], message.page.desc || []);

	const res = await q.exec();
	const data = res[0];

	const c = count(action_id, session_id, systemid);
	c.prepare('equipment_facilities', { productid, equip_internal_no: { $like: '%' + message.page.value1 + '%' }, equip_name: { $like: '%' + message.page.value2 + '%' }, fixed_assets_type: { $like: '%' + message.page.value3 + '%' } });
	const [n] = await c.exec();

	log('Service end path:e:\考核-2\kh\src\device-management-ygh\zj-000002\s001,action_id:' + action_id);
	return {
		data: { data, n }
	};
}
